// 导出主组件
export { default as TencentMapNew } from './index.vue'
export { default as ZoomControl } from './ZoomControl.vue'

// 导出组合式函数
export { useTencentMap } from './useTencentMap'

// 导出SDK加载相关
export {
  loadTencentMapSDK,
  getTencentMapConfig,
  setTencentMapApiKey,
  isApiKeyConfigured
} from './loadTencentMapSDK'

// 导出配置相关
export {
  TENCENT_MAP_CONFIG,
  MAP_STYLE_OPTIONS,
  validateApiKey,
  getMapConfig,
  updateApiKey,
  updateMapStyle,
  updateControlsConfig,
  updateEventsConfig
} from './config'

// 导出行政区划数据加载相关
export {
  loadDistrictData,
  loadDistrictBoundary,
  getProvinceCode,
  getAllProvinces,
  clearDistrictDataCache
} from './districtData'

// 导出类型定义
export type {
  MapOptions,
  DistrictBoundary,
  MapEventHandlers
} from './useTencentMap'

export type {
  DistrictData
} from './districtData'

// 组件安装函数
import TencentMapNew from './index.vue'
import type { App } from 'vue'

export const install = (app: App) => {
  app.component('TencentMapNew', TencentMapNew)
}

export default {
  install
}